Fork me on GitHub

设计模式-模版【Tempalte Method】

模版方法,父类定义模版方法,子类重写抽象和钩子方法。

介绍

设计模式中,模版设计模式,在日常的开发中,是比较常用的了。很好的复合了ocp(Open Closed Principle),通过继承的方式,客户端重写抽象方法钩子方法,实现自己的业务,很好的拓展性。我刚刚开始接触的时候对这个钩子方法也是很迷惑,在下面讲整个结构的时候,会详细的讲解钩子函数。

应用场景

UML

方法说明

模版方法(main):模版方法,客户端调用的主要方法。
抽象方法(concreteMethod):子类提供具体业务实现。
勾子方法(hookMethod):父类中提供默认空实现,并且这个方法会在模版方法调用,子类可以重写也可以不用重写。

使用

父类:定义模版方法,并且定义抽象方法和钩子方法。
子类:根据具体的业务需要重写抽象方法。也可以根据具体的业务场景,重写钩子方法。当然也不可以重写钩子方法。也可以业务定义新的方法。
客户端(client):调用时候主要是调用模版方法

优缺点

  • 优点:
  • 缺点:

拓展性

具有很好的拓展型,根据不同的业务定义不同的子类。

实例

源码地址